knitr::opts_chunk$set(fig.align="center")
library(rstanarm)
library(tidyverse)
library(tidybayes)
library(modelr)
library(ggplot2)
library(magrittr)
library(emmeans)
library(bayesplot)
library(brms)
library(gganimate)
theme_set(theme_light())
task_list <- c("3. Prediction", "4. Exploration")
seed = 12
Read in and format data
interacted_var_sets_data <- read.csv("split_by_participant_groups/num_of_interacted_variable_set.csv")
interacted_var_sets_data <- interacted_var_sets_data %>%
mutate(
dataset = as.factor(dataset),
oracle = as.factor(oracle),
search = as.factor(search),
task = as.factor(task),
participant_group = as.factor(participant_group)
)
Train model
prior_mean = 35.24
prior_sd = 25.33
stanvars <- stanvar(prior_mean, name='prior_mean') + stanvar(prior_sd, name='prior_sd')
model_interacted_var_sets <- brm(
formula = num_interacted_variable_set ~ oracle * search + dataset + task + participant_group + (1 + oracle * search + dataset + participant_group | participant_id),
prior = prior(normal(prior_mean, prior_sd), class = Intercept),
chains = 2,
cores = 2,
iter = 2500,
warmup = 1000,
data = interacted_var_sets_data,
stanvars=stanvars,
seed = seed,
file = "model_interacted_var_sets_group"
)
Plot
plot(model_interacted_var_sets)
Summary
summary(model_interacted_var_sets)
## Warning: There were 2 divergent transitions after warmup. Increasing adapt_delta
## above 0.8 may help. See http://mc-stan.org/misc/warnings.html#divergent-
## transitions-after-warmup
## Family: gaussian
## Links: mu = identity; sigma = identity
## Formula: num_interacted_variable_set ~ oracle * search + dataset + task + participant_group + (1 + oracle * search + dataset + participant_group | participant_id)
## Data: interacted_var_sets_data (Number of observations: 132)
## Samples: 2 chains, each with iter = 2500; warmup = 1000; thin = 1;
## total post-warmup samples = 3000
##
## Group-Level Effects:
## ~participant_id (Number of levels: 66)
## Estimate Est.Error
## sd(Intercept) 3.58 2.30
## sd(oracledziban) 3.85 2.56
## sd(searchdfs) 4.96 2.89
## sd(datasetmovies) 4.74 2.68
## sd(participant_groupstudent) 2.60 1.94
## sd(oracledziban:searchdfs) 4.68 3.44
## cor(Intercept,oracledziban) -0.05 0.37
## cor(Intercept,searchdfs) -0.02 0.37
## cor(oracledziban,searchdfs) -0.02 0.39
## cor(Intercept,datasetmovies) -0.04 0.38
## cor(oracledziban,datasetmovies) 0.03 0.38
## cor(searchdfs,datasetmovies) -0.17 0.39
## cor(Intercept,participant_groupstudent) -0.14 0.38
## cor(oracledziban,participant_groupstudent) -0.04 0.37
## cor(searchdfs,participant_groupstudent) -0.09 0.38
## cor(datasetmovies,participant_groupstudent) -0.00 0.38
## cor(Intercept,oracledziban:searchdfs) -0.01 0.38
## cor(oracledziban,oracledziban:searchdfs) -0.05 0.38
## cor(searchdfs,oracledziban:searchdfs) -0.04 0.37
## cor(datasetmovies,oracledziban:searchdfs) -0.08 0.38
## cor(participant_groupstudent,oracledziban:searchdfs) 0.00 0.38
## l-95% CI u-95% CI Rhat
## sd(Intercept) 0.13 8.28 1.03
## sd(oracledziban) 0.21 9.39 1.01
## sd(searchdfs) 0.29 10.76 1.01
## sd(datasetmovies) 0.31 10.23 1.01
## sd(participant_groupstudent) 0.14 7.25 1.01
## sd(oracledziban:searchdfs) 0.22 12.64 1.00
## cor(Intercept,oracledziban) -0.70 0.65 1.00
## cor(Intercept,searchdfs) -0.70 0.66 1.00
## cor(oracledziban,searchdfs) -0.73 0.72 1.00
## cor(Intercept,datasetmovies) -0.73 0.67 1.00
## cor(oracledziban,datasetmovies) -0.69 0.72 1.00
## cor(searchdfs,datasetmovies) -0.82 0.63 1.00
## cor(Intercept,participant_groupstudent) -0.80 0.61 1.00
## cor(oracledziban,participant_groupstudent) -0.74 0.67 1.00
## cor(searchdfs,participant_groupstudent) -0.77 0.68 1.00
## cor(datasetmovies,participant_groupstudent) -0.71 0.69 1.00
## cor(Intercept,oracledziban:searchdfs) -0.71 0.70 1.00
## cor(oracledziban,oracledziban:searchdfs) -0.73 0.69 1.00
## cor(searchdfs,oracledziban:searchdfs) -0.72 0.68 1.00
## cor(datasetmovies,oracledziban:searchdfs) -0.76 0.67 1.00
## cor(participant_groupstudent,oracledziban:searchdfs) -0.71 0.71 1.00
## Bulk_ESS Tail_ESS
## sd(Intercept) 262 434
## sd(oracledziban) 526 1002
## sd(searchdfs) 338 733
## sd(datasetmovies) 338 675
## sd(participant_groupstudent) 671 658
## sd(oracledziban:searchdfs) 627 1064
## cor(Intercept,oracledziban) 1239 1778
## cor(Intercept,searchdfs) 1048 1467
## cor(oracledziban,searchdfs) 968 1719
## cor(Intercept,datasetmovies) 890 1360
## cor(oracledziban,datasetmovies) 750 1223
## cor(searchdfs,datasetmovies) 647 1316
## cor(Intercept,participant_groupstudent) 1448 1727
## cor(oracledziban,participant_groupstudent) 2213 1932
## cor(searchdfs,participant_groupstudent) 1790 1825
## cor(datasetmovies,participant_groupstudent) 1820 1925
## cor(Intercept,oracledziban:searchdfs) 1773 1841
## cor(oracledziban,oracledziban:searchdfs) 1582 1716
## cor(searchdfs,oracledziban:searchdfs) 1946 2241
## cor(datasetmovies,oracledziban:searchdfs) 1485 2030
## cor(participant_groupstudent,oracledziban:searchdfs) 1765 2158
##
## Population-Level Effects:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS
## Intercept 20.91 2.74 15.46 26.30 1.00 1446
## oracledziban 0.06 3.01 -5.95 6.02 1.00 1074
## searchdfs -1.11 3.00 -7.21 4.56 1.00 963
## datasetmovies 3.70 2.36 -0.92 8.25 1.00 1454
## task4.Exploration 1.85 1.38 -0.91 4.49 1.00 3110
## participant_groupstudent -0.69 2.32 -5.16 3.76 1.00 1807
## oracledziban:searchdfs 1.60 4.73 -7.49 11.07 1.00 1005
## Tail_ESS
## Intercept 1444
## oracledziban 1345
## searchdfs 1075
## datasetmovies 1785
## task4.Exploration 2067
## participant_groupstudent 2037
## oracledziban:searchdfs 1157
##
## Family Specific Parameters:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sigma 8.14 0.69 6.91 9.58 1.00 1274 2157
##
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
pairs(
model_interacted_var_sets,
pars = c(
"b_Intercept",
"b_datasetmovies",
"b_oracledziban",
"b_searchdfs",
"b_task4.Exploration",
"b_participant_groupstudent"
),
fixed = TRUE
)
draw_data_interacted_var_sets <- interacted_var_sets_data %>%
add_fitted_draws(model_interacted_var_sets, seed = seed, re_formula = NA)
draw_data_interacted_var_sets$condition <- paste(draw_data_interacted_var_sets$oracle, draw_data_interacted_var_sets$search)
plot_interacted_var_sets <- draw_data_interacted_var_sets %>% ggplot(aes(x = dataset, y = .value, fill = participant_group, alpha = 0.5)) +
stat_eye(.width = c(.95, .5)) +
theme_minimal() +
facet_grid(task ~ condition)
plot_interacted_var_sets
ggsave(
file = paste("interacted_var_sets_split_group.png", sep = ""),
plot = plot_interacted_var_sets,
path = paste0("../plots/posterior_draws/pariticpant_groups/num_interacted_variable_set")
)
## Saving 7 x 5 in image
fit_info_interacted_var_sets <-
draw_data_interacted_var_sets %>% group_by(search, oracle, task, participant_group) %>% mean_qi(.value, .width = c(.95, .5))
fit_info_interacted_var_sets
## # A tibble: 32 x 10
## # Groups: search, oracle, task [8]
## search oracle task participant_gro… .value .lower .upper .width .point
## <fct> <fct> <fct> <fct> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 bfs compa… 3. P… professional 22.8 16.4 29.4 0.95 mean
## 2 bfs compa… 3. P… student 22.1 16.1 28.6 0.95 mean
## 3 bfs compa… 4. E… professional 24.6 18.3 31.3 0.95 mean
## 4 bfs compa… 4. E… student 23.9 18.0 30.6 0.95 mean
## 5 bfs dziban 3. P… professional 23.1 16.3 29.7 0.95 mean
## 6 bfs dziban 3. P… student 22.1 15.9 28.8 0.95 mean
## 7 bfs dziban 4. E… professional 24.9 18.1 31.4 0.95 mean
## 8 bfs dziban 4. E… student 24.0 17.7 30.6 0.95 mean
## 9 dfs compa… 3. P… professional 21.9 15.1 28.4 0.95 mean
## 10 dfs compa… 3. P… student 21.0 14.7 27.2 0.95 mean
## # … with 22 more rows, and 1 more variable: .interval <chr>
write.csv(
fit_info_interacted_var_sets, "../plot_data/posterior_draws/num_interacted_variable_set/interacted_var_sets.csv",
row.names = FALSE
)
predictive_data_interacted_var_sets <- interacted_var_sets_data %>%
add_predicted_draws(model_interacted_var_sets, seed = seed, re_formula = NA)
Difference in groups
diff_in_group_prediction <- predictive_data_interacted_var_sets %>%
group_by(search, task, dataset, participant_group, .draw) %>%
summarize(value = weighted.mean(.prediction)) %>%
compare_levels(value, by = participant_group) %>%
rename(diff = value)
## `summarise()` regrouping output by 'search', 'task', 'dataset', 'participant_group' (override with `.groups` argument)
diff_in_group_prediction_plot <- diff_in_group_prediction %>%
ggplot(aes(x = diff, y = task)) +
xlab(
paste0(
"Difference in interacted_var_sets (",
diff_in_group_prediction[1, 'participant_group'],
")"
)
) +
ylab("Task") +
stat_halfeye(.width = c(.95, .5)) +
geom_vline(xintercept = 0, linetype = "longdash") +
theme_minimal() + scale_y_discrete(limits = rev(levels(diff_in_group_prediction$task)))
diff_in_group_prediction_plot
ggsave(
file = "group_differences.png",
plot = diff_in_group_prediction_plot,
path = paste0("../plots/posterior_draws/pariticpant_groups/num_interacted_variable_set")
)
## Saving 7 x 5 in image
diff_in_group_prediction_plot_split_by_dataset <- diff_in_group_prediction_plot + aes(fill = dataset, alpha = 0.5)
diff_in_group_prediction_plot_split_by_dataset
ggsave(
file = "group_differences_split_by_dataset.png",
plot = diff_in_group_prediction_plot_split_by_dataset,
path = paste0("../plots/posterior_draws/pariticpant_groups/num_interacted_variable_set")
)
## Saving 7 x 5 in image
Read in and format data
interacted_visual_design_data <- read.csv("split_by_participant_groups/num_of_interacted_visual_design.csv")
interacted_visual_design_data <- interacted_visual_design_data %>%
mutate(
dataset = as.factor(dataset),
oracle = as.factor(oracle),
search = as.factor(search),
task = as.factor(task),
participant_group = as.factor(participant_group)
)
Train model
prior_mean = 35.24
prior_sd = 25.33
stanvars <- stanvar(prior_mean, name='prior_mean') + stanvar(prior_sd, name='prior_sd')
model_interacted_visual_design <- brm(
formula = num_interacted_visual_design ~ oracle * search + dataset + task + participant_group + (1 + oracle * search + dataset + participant_group | participant_id),
prior = prior(normal(prior_mean, prior_sd), class = Intercept),
chains = 2,
cores = 2,
iter = 2500,
warmup = 1000,
data = interacted_visual_design_data,
stanvars=stanvars,
seed = seed,
file = "model_interacted_visual_design_group"
)
## Compiling Stan program...
## Trying to compile a simple C file
## Running /Library/Frameworks/R.framework/Resources/bin/R CMD SHLIB foo.c
## clang -mmacosx-version-min=10.13 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/Rcpp/include/" -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/" -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/unsupported" -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/BH/include" -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/src/" -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/" -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppParallel/include/" -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/rstan/include" -DEIGEN_NO_DEBUG -DBOOST_DISABLE_ASSERTS -DBOOST_PENDING_INTEGER_LOG2_HPP -DSTAN_THREADS -DBOOST_NO_AUTO_PTR -include '/Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/stan/math/prim/mat/fun/Eigen.hpp' -D_REENTRANT -DRCPP_PARALLEL_USE_TBB=1 -I/usr/local/include -fPIC -Wall -g -O2 -c foo.c -o foo.o
## In file included from <built-in>:1:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/stan/math/prim/mat/fun/Eigen.hpp:13:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/Dense:1:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/Core:88:
## /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/src/Core/util/Macros.h:613:1: error: unknown type name 'namespace'
## namespace Eigen {
## ^
## /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/src/Core/util/Macros.h:613:16: error: expected ';' after top level declarator
## namespace Eigen {
## ^
## ;
## In file included from <built-in>:1:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/stan/math/prim/mat/fun/Eigen.hpp:13:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/Dense:1:
## /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/Core:96:10: fatal error: 'complex' file not found
## #include <complex>
## ^~~~~~~~~
## 3 errors generated.
## make: *** [foo.o] Error 1
## Start sampling
Plot
plot(model_interacted_visual_design)
Summary
summary(model_interacted_visual_design)
## Family: gaussian
## Links: mu = identity; sigma = identity
## Formula: num_interacted_visual_design ~ oracle * search + dataset + task + participant_group + (1 + oracle * search + dataset + participant_group | participant_id)
## Data: interacted_visual_design_data (Number of observations: 132)
## Samples: 2 chains, each with iter = 2500; warmup = 1000; thin = 1;
## total post-warmup samples = 3000
##
## Group-Level Effects:
## ~participant_id (Number of levels: 66)
## Estimate Est.Error
## sd(Intercept) 3.74 2.37
## sd(oracledziban) 5.27 3.32
## sd(searchdfs) 5.17 3.06
## sd(datasetmovies) 5.38 3.19
## sd(participant_groupstudent) 2.77 2.20
## sd(oracledziban:searchdfs) 5.76 3.98
## cor(Intercept,oracledziban) -0.01 0.38
## cor(Intercept,searchdfs) -0.01 0.37
## cor(oracledziban,searchdfs) -0.02 0.37
## cor(Intercept,datasetmovies) -0.06 0.38
## cor(oracledziban,datasetmovies) 0.02 0.36
## cor(searchdfs,datasetmovies) -0.20 0.39
## cor(Intercept,participant_groupstudent) -0.16 0.39
## cor(oracledziban,participant_groupstudent) -0.05 0.37
## cor(searchdfs,participant_groupstudent) -0.08 0.38
## cor(datasetmovies,participant_groupstudent) -0.03 0.38
## cor(Intercept,oracledziban:searchdfs) -0.00 0.38
## cor(oracledziban,oracledziban:searchdfs) -0.05 0.38
## cor(searchdfs,oracledziban:searchdfs) -0.02 0.38
## cor(datasetmovies,oracledziban:searchdfs) -0.09 0.38
## cor(participant_groupstudent,oracledziban:searchdfs) 0.00 0.38
## l-95% CI u-95% CI Rhat
## sd(Intercept) 0.15 8.70 1.00
## sd(oracledziban) 0.20 12.14 1.00
## sd(searchdfs) 0.32 11.55 1.00
## sd(datasetmovies) 0.23 11.76 1.00
## sd(participant_groupstudent) 0.08 8.23 1.00
## sd(oracledziban:searchdfs) 0.31 14.86 1.00
## cor(Intercept,oracledziban) -0.72 0.69 1.00
## cor(Intercept,searchdfs) -0.70 0.71 1.00
## cor(oracledziban,searchdfs) -0.69 0.69 1.00
## cor(Intercept,datasetmovies) -0.73 0.68 1.00
## cor(oracledziban,datasetmovies) -0.67 0.69 1.00
## cor(searchdfs,datasetmovies) -0.84 0.62 1.00
## cor(Intercept,participant_groupstudent) -0.81 0.62 1.00
## cor(oracledziban,participant_groupstudent) -0.74 0.65 1.00
## cor(searchdfs,participant_groupstudent) -0.75 0.67 1.00
## cor(datasetmovies,participant_groupstudent) -0.73 0.69 1.00
## cor(Intercept,oracledziban:searchdfs) -0.72 0.72 1.00
## cor(oracledziban,oracledziban:searchdfs) -0.74 0.68 1.00
## cor(searchdfs,oracledziban:searchdfs) -0.71 0.69 1.00
## cor(datasetmovies,oracledziban:searchdfs) -0.77 0.66 1.00
## cor(participant_groupstudent,oracledziban:searchdfs) -0.71 0.72 1.00
## Bulk_ESS Tail_ESS
## sd(Intercept) 791 1528
## sd(oracledziban) 593 964
## sd(searchdfs) 737 1164
## sd(datasetmovies) 583 1372
## sd(participant_groupstudent) 1189 1215
## sd(oracledziban:searchdfs) 999 1543
## cor(Intercept,oracledziban) 1688 1917
## cor(Intercept,searchdfs) 1731 2026
## cor(oracledziban,searchdfs) 1868 2384
## cor(Intercept,datasetmovies) 1735 2048
## cor(oracledziban,datasetmovies) 1899 2103
## cor(searchdfs,datasetmovies) 1006 2139
## cor(Intercept,participant_groupstudent) 2691 2221
## cor(oracledziban,participant_groupstudent) 3479 2387
## cor(searchdfs,participant_groupstudent) 2747 2245
## cor(datasetmovies,participant_groupstudent) 2909 2595
## cor(Intercept,oracledziban:searchdfs) 3237 2669
## cor(oracledziban,oracledziban:searchdfs) 2853 2317
## cor(searchdfs,oracledziban:searchdfs) 2442 2235
## cor(datasetmovies,oracledziban:searchdfs) 1821 2344
## cor(participant_groupstudent,oracledziban:searchdfs) 2422 2607
##
## Population-Level Effects:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS
## Intercept 22.02 2.82 16.48 27.51 1.00 4113
## oracledziban 0.64 3.30 -5.74 7.25 1.00 2594
## searchdfs -2.16 3.06 -8.15 4.00 1.00 3344
## datasetmovies 4.02 2.55 -0.95 9.09 1.00 3154
## task4.Exploration 1.72 1.46 -1.22 4.53 1.00 6582
## participant_groupstudent -0.87 2.43 -5.55 3.78 1.00 3906
## oracledziban:searchdfs 2.28 5.02 -7.57 12.03 1.00 2737
## Tail_ESS
## Intercept 2507
## oracledziban 2235
## searchdfs 2450
## datasetmovies 2453
## task4.Exploration 2084
## participant_groupstudent 2422
## oracledziban:searchdfs 2368
##
## Family Specific Parameters:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sigma 8.44 0.71 7.19 9.99 1.00 2057 2204
##
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
pairs(
model_interacted_visual_design,
pars = c(
"b_Intercept",
"b_datasetmovies",
"b_oracledziban",
"b_searchdfs",
"b_task4.Exploration",
"b_participant_groupstudent"
),
fixed = TRUE
)
draw_data_interacted_visual_design <- interacted_visual_design_data %>%
add_fitted_draws(model_interacted_visual_design, seed = seed, re_formula = NA)
draw_data_interacted_visual_design$condition <- paste(draw_data_interacted_visual_design$oracle, draw_data_interacted_visual_design$search)
plot_interacted_visual_design <- draw_data_interacted_visual_design %>% ggplot(aes(x = dataset, y = .value, fill = participant_group, alpha = 0.5)) +
stat_eye(.width = c(.95, .5)) +
theme_minimal() +
facet_grid(task ~ condition)
plot_interacted_visual_design
ggsave(
file = paste("interacted_visual_design_split_group.png", sep = ""),
plot = plot_interacted_visual_design,
path = paste0("../plots/posterior_draws/pariticpant_groups/num_interacted_variable_set")
)
## Saving 7 x 5 in image
fit_info_interacted_visual_design <-
draw_data_interacted_visual_design %>% group_by(search, oracle, task, participant_group) %>% mean_qi(.value, .width = c(.95, .5))
fit_info_interacted_visual_design
## # A tibble: 32 x 10
## # Groups: search, oracle, task [8]
## search oracle task participant_gro… .value .lower .upper .width .point
## <fct> <fct> <fct> <fct> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 bfs compa… 3. P… professional 24.0 17.4 31.1 0.95 mean
## 2 bfs compa… 3. P… student 23.2 16.8 29.9 0.95 mean
## 3 bfs compa… 4. E… professional 25.7 19.0 33.1 0.95 mean
## 4 bfs compa… 4. E… student 24.9 18.6 31.7 0.95 mean
## 5 bfs dziban 3. P… professional 25.0 17.7 32.4 0.95 mean
## 6 bfs dziban 3. P… student 23.8 16.7 31.2 0.95 mean
## 7 bfs dziban 4. E… professional 26.7 19.3 34.0 0.95 mean
## 8 bfs dziban 4. E… student 25.5 18.4 32.8 0.95 mean
## 9 dfs compa… 3. P… professional 22.2 14.7 29.3 0.95 mean
## 10 dfs compa… 3. P… student 21.0 14.1 27.8 0.95 mean
## # … with 22 more rows, and 1 more variable: .interval <chr>
write.csv(
fit_info_interacted_visual_design, "../plot_data/posterior_draws/num_interacted_variable_set/interacted_visual_design.csv",
row.names = FALSE
)
predictive_data_interacted_visual_design <- interacted_visual_design_data %>%
add_predicted_draws(model_interacted_visual_design, seed = seed, re_formula = NA)
Difference in groups
diff_in_group_prediction <- predictive_data_interacted_visual_design %>%
group_by(search, task, dataset, participant_group, .draw) %>%
summarize(value = weighted.mean(.prediction)) %>%
compare_levels(value, by = participant_group) %>%
rename(diff = value)
## `summarise()` regrouping output by 'search', 'task', 'dataset', 'participant_group' (override with `.groups` argument)
diff_in_group_prediction_plot <- diff_in_group_prediction %>%
ggplot(aes(x = diff, y = task)) +
xlab(
paste0(
"Difference in interacted_visual_design (",
diff_in_group_prediction[1, 'participant_group'],
")"
)
) +
ylab("Task") +
stat_halfeye(.width = c(.95, .5)) +
geom_vline(xintercept = 0, linetype = "longdash") +
theme_minimal() + scale_y_discrete(limits = rev(levels(diff_in_group_prediction$task)))
diff_in_group_prediction_plot
ggsave(
file = "group_differences.png",
plot = diff_in_group_prediction_plot,
path = paste0("../plots/posterior_draws/pariticpant_groups/num_interacted_variable_set")
)
## Saving 7 x 5 in image
diff_in_group_prediction_plot_split_by_dataset <- diff_in_group_prediction_plot + aes(fill = dataset, alpha = 0.5)
diff_in_group_prediction_plot_split_by_dataset
ggsave(
file = "group_differences_split_by_dataset.png",
plot = diff_in_group_prediction_plot_split_by_dataset,
path = paste0("../plots/posterior_draws/pariticpant_groups/num_interacted_variable_set")
)
## Saving 7 x 5 in image
Read in and format data
exposed_variable_set_data <- read.csv("split_by_participant_groups/num_of_exposed_variable_set.csv")
exposed_variable_set_data <- exposed_variable_set_data %>%
mutate(
dataset = as.factor(dataset),
oracle = as.factor(oracle),
search = as.factor(search),
task = as.factor(task),
participant_group = as.factor(participant_group)
)
Train model
prior_mean = 35.24
prior_sd = 25.33
stanvars <- stanvar(prior_mean, name='prior_mean') + stanvar(prior_sd, name='prior_sd')
model_exposed_variable_set <- brm(
formula = num_exposed_variable_set ~ oracle * search + dataset + task + participant_group + (1 + oracle * search + dataset + participant_group | participant_id),
prior = prior(normal(prior_mean, prior_sd), class = Intercept),
chains = 2,
cores = 2,
iter = 2500,
warmup = 1000,
data = exposed_variable_set_data,
stanvars=stanvars,
seed = seed,
file = "model_exposed_variable_set_group"
)
## Compiling Stan program...
## Trying to compile a simple C file
## Running /Library/Frameworks/R.framework/Resources/bin/R CMD SHLIB foo.c
## clang -mmacosx-version-min=10.13 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/Rcpp/include/" -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/" -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/unsupported" -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/BH/include" -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/src/" -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/" -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppParallel/include/" -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/rstan/include" -DEIGEN_NO_DEBUG -DBOOST_DISABLE_ASSERTS -DBOOST_PENDING_INTEGER_LOG2_HPP -DSTAN_THREADS -DBOOST_NO_AUTO_PTR -include '/Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/stan/math/prim/mat/fun/Eigen.hpp' -D_REENTRANT -DRCPP_PARALLEL_USE_TBB=1 -I/usr/local/include -fPIC -Wall -g -O2 -c foo.c -o foo.o
## In file included from <built-in>:1:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/stan/math/prim/mat/fun/Eigen.hpp:13:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/Dense:1:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/Core:88:
## /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/src/Core/util/Macros.h:613:1: error: unknown type name 'namespace'
## namespace Eigen {
## ^
## /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/src/Core/util/Macros.h:613:16: error: expected ';' after top level declarator
## namespace Eigen {
## ^
## ;
## In file included from <built-in>:1:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/stan/math/prim/mat/fun/Eigen.hpp:13:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/Dense:1:
## /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/Core:96:10: fatal error: 'complex' file not found
## #include <complex>
## ^~~~~~~~~
## 3 errors generated.
## make: *** [foo.o] Error 1
## Start sampling
Plot
plot(model_exposed_variable_set)
Summary
summary(model_exposed_variable_set)
## Family: gaussian
## Links: mu = identity; sigma = identity
## Formula: num_exposed_variable_set ~ oracle * search + dataset + task + participant_group + (1 + oracle * search + dataset + participant_group | participant_id)
## Data: exposed_variable_set_data (Number of observations: 132)
## Samples: 2 chains, each with iter = 2500; warmup = 1000; thin = 1;
## total post-warmup samples = 3000
##
## Group-Level Effects:
## ~participant_id (Number of levels: 66)
## Estimate Est.Error
## sd(Intercept) 4.53 3.38
## sd(oracledziban) 12.60 7.18
## sd(searchdfs) 5.42 4.20
## sd(datasetmovies) 7.65 5.29
## sd(participant_groupstudent) 6.06 4.49
## sd(oracledziban:searchdfs) 15.15 9.51
## cor(Intercept,oracledziban) -0.02 0.38
## cor(Intercept,searchdfs) -0.08 0.37
## cor(oracledziban,searchdfs) 0.02 0.38
## cor(Intercept,datasetmovies) -0.04 0.38
## cor(oracledziban,datasetmovies) 0.03 0.37
## cor(searchdfs,datasetmovies) -0.08 0.37
## cor(Intercept,participant_groupstudent) -0.06 0.38
## cor(oracledziban,participant_groupstudent) 0.03 0.37
## cor(searchdfs,participant_groupstudent) -0.07 0.38
## cor(datasetmovies,participant_groupstudent) 0.05 0.37
## cor(Intercept,oracledziban:searchdfs) -0.01 0.38
## cor(oracledziban,oracledziban:searchdfs) 0.01 0.36
## cor(searchdfs,oracledziban:searchdfs) -0.01 0.38
## cor(datasetmovies,oracledziban:searchdfs) -0.00 0.37
## cor(participant_groupstudent,oracledziban:searchdfs) 0.02 0.37
## l-95% CI u-95% CI Rhat
## sd(Intercept) 0.24 12.76 1.00
## sd(oracledziban) 0.77 26.87 1.00
## sd(searchdfs) 0.17 15.53 1.00
## sd(datasetmovies) 0.37 19.22 1.00
## sd(participant_groupstudent) 0.17 16.41 1.00
## sd(oracledziban:searchdfs) 0.62 35.34 1.00
## cor(Intercept,oracledziban) -0.76 0.72 1.00
## cor(Intercept,searchdfs) -0.75 0.64 1.00
## cor(oracledziban,searchdfs) -0.71 0.70 1.00
## cor(Intercept,datasetmovies) -0.74 0.70 1.00
## cor(oracledziban,datasetmovies) -0.70 0.72 1.00
## cor(searchdfs,datasetmovies) -0.76 0.66 1.00
## cor(Intercept,participant_groupstudent) -0.73 0.68 1.00
## cor(oracledziban,participant_groupstudent) -0.69 0.70 1.00
## cor(searchdfs,participant_groupstudent) -0.77 0.67 1.00
## cor(datasetmovies,participant_groupstudent) -0.67 0.74 1.00
## cor(Intercept,oracledziban:searchdfs) -0.72 0.70 1.00
## cor(oracledziban,oracledziban:searchdfs) -0.68 0.69 1.00
## cor(searchdfs,oracledziban:searchdfs) -0.72 0.69 1.00
## cor(datasetmovies,oracledziban:searchdfs) -0.69 0.69 1.00
## cor(participant_groupstudent,oracledziban:searchdfs) -0.68 0.71 1.00
## Bulk_ESS Tail_ESS
## sd(Intercept) 1358 2070
## sd(oracledziban) 536 731
## sd(searchdfs) 1423 1517
## sd(datasetmovies) 965 1506
## sd(participant_groupstudent) 818 914
## sd(oracledziban:searchdfs) 778 933
## cor(Intercept,oracledziban) 1016 1192
## cor(Intercept,searchdfs) 2954 2116
## cor(oracledziban,searchdfs) 2790 2304
## cor(Intercept,datasetmovies) 2643 2088
## cor(oracledziban,datasetmovies) 1870 1740
## cor(searchdfs,datasetmovies) 1517 2149
## cor(Intercept,participant_groupstudent) 2856 2033
## cor(oracledziban,participant_groupstudent) 2623 2082
## cor(searchdfs,participant_groupstudent) 2140 2344
## cor(datasetmovies,participant_groupstudent) 1961 2340
## cor(Intercept,oracledziban:searchdfs) 1769 1846
## cor(oracledziban,oracledziban:searchdfs) 1985 2336
## cor(searchdfs,oracledziban:searchdfs) 1697 2220
## cor(datasetmovies,oracledziban:searchdfs) 1828 2392
## cor(participant_groupstudent,oracledziban:searchdfs) 2046 2588
##
## Population-Level Effects:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS
## Intercept 62.80 6.60 49.44 75.69 1.00 3192
## oracledziban -0.60 7.34 -14.99 14.08 1.00 1988
## searchdfs -25.53 6.50 -38.36 -12.69 1.00 2761
## datasetmovies 10.32 5.32 -0.24 20.48 1.00 3018
## task4.Exploration 13.09 3.92 5.29 21.01 1.00 4126
## participant_groupstudent 2.43 5.49 -8.61 12.80 1.00 2839
## oracledziban:searchdfs 22.71 11.43 -0.56 44.79 1.00 1852
## Tail_ESS
## Intercept 2594
## oracledziban 2132
## searchdfs 2390
## datasetmovies 2382
## task4.Exploration 2422
## participant_groupstudent 2351
## oracledziban:searchdfs 1994
##
## Family Specific Parameters:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sigma 22.47 1.74 19.36 26.10 1.00 2405 2558
##
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
pairs(
model_exposed_variable_set,
pars = c(
"b_Intercept",
"b_datasetmovies",
"b_oracledziban",
"b_searchdfs",
"b_task4.Exploration",
"b_participant_groupstudent"
),
fixed = TRUE
)
draw_data_exposed_variable_set <- exposed_variable_set_data %>%
add_fitted_draws(model_exposed_variable_set, seed = seed, re_formula = NA)
draw_data_exposed_variable_set$condition <- paste(draw_data_exposed_variable_set$oracle, draw_data_exposed_variable_set$search)
plot_exposed_variable_set <- draw_data_exposed_variable_set %>% ggplot(aes(x = dataset, y = .value, fill = participant_group, alpha = 0.5)) +
stat_eye(.width = c(.95, .5)) +
theme_minimal() +
facet_grid(task ~ condition)
plot_exposed_variable_set
ggsave(
file = paste("exposed_variable_set_split_group.png", sep = ""),
plot = plot_exposed_variable_set,
path = paste0("../plots/posterior_draws/pariticpant_groups/num_interacted_variable_set")
)
## Saving 7 x 5 in image
fit_info_exposed_variable_set <-
draw_data_exposed_variable_set %>% group_by(search, oracle, task, participant_group) %>% mean_qi(.value, .width = c(.95, .5))
fit_info_exposed_variable_set
## # A tibble: 32 x 10
## # Groups: search, oracle, task [8]
## search oracle task participant_gro… .value .lower .upper .width .point
## <fct> <fct> <fct> <fct> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 bfs compa… 3. P… professional 68.0 52.1 84.0 0.95 mean
## 2 bfs compa… 3. P… student 70.4 55.7 85.8 0.95 mean
## 3 bfs compa… 4. E… professional 81.1 65.5 96.5 0.95 mean
## 4 bfs compa… 4. E… student 83.5 68.4 99.0 0.95 mean
## 5 bfs dziban 3. P… professional 68.1 50.7 84.5 0.95 mean
## 6 bfs dziban 3. P… student 69.8 53.5 86.8 0.95 mean
## 7 bfs dziban 4. E… professional 81.2 63.9 98.0 0.95 mean
## 8 bfs dziban 4. E… student 82.9 66.2 100. 0.95 mean
## 9 dfs compa… 3. P… professional 43.2 26.8 58.4 0.95 mean
## 10 dfs compa… 3. P… student 44.9 30.1 59.9 0.95 mean
## # … with 22 more rows, and 1 more variable: .interval <chr>
write.csv(
fit_info_exposed_variable_set, "../plot_data/posterior_draws/num_interacted_variable_set/exposed_variable_set.csv",
row.names = FALSE
)
predictive_data_exposed_variable_set <- exposed_variable_set_data %>%
add_predicted_draws(model_exposed_variable_set, seed = seed, re_formula = NA)
Difference in groups
diff_in_group_prediction <- predictive_data_exposed_variable_set %>%
group_by(search, task, dataset, participant_group, .draw) %>%
summarize(value = weighted.mean(.prediction)) %>%
compare_levels(value, by = participant_group) %>%
rename(diff = value)
## `summarise()` regrouping output by 'search', 'task', 'dataset', 'participant_group' (override with `.groups` argument)
diff_in_group_prediction_plot <- diff_in_group_prediction %>%
ggplot(aes(x = diff, y = task)) +
xlab(
paste0(
"Difference in exposed_variable_set (",
diff_in_group_prediction[1, 'participant_group'],
")"
)
) +
ylab("Task") +
stat_halfeye(.width = c(.95, .5)) +
geom_vline(xintercept = 0, linetype = "longdash") +
theme_minimal() + scale_y_discrete(limits = rev(levels(diff_in_group_prediction$task)))
diff_in_group_prediction_plot
ggsave(
file = "group_differences.png",
plot = diff_in_group_prediction_plot,
path = paste0("../plots/posterior_draws/pariticpant_groups/num_interacted_variable_set")
)
## Saving 7 x 5 in image
diff_in_group_prediction_plot_split_by_dataset <- diff_in_group_prediction_plot + aes(fill = dataset, alpha = 0.5)
diff_in_group_prediction_plot_split_by_dataset
ggsave(
file = "group_differences_split_by_dataset.png",
plot = diff_in_group_prediction_plot_split_by_dataset,
path = paste0("../plots/posterior_draws/pariticpant_groups/num_interacted_variable_set")
)
## Saving 7 x 5 in image
Read in and format data
exposed_visual_design_data <- read.csv("split_by_participant_groups/num_of_exposed_visual_design.csv")
exposed_visual_design_data <- exposed_visual_design_data %>%
mutate(
dataset = as.factor(dataset),
oracle = as.factor(oracle),
search = as.factor(search),
task = as.factor(task),
participant_group = as.factor(participant_group)
)
Train model
prior_mean = 35.24
prior_sd = 25.33
stanvars <- stanvar(prior_mean, name='prior_mean') + stanvar(prior_sd, name='prior_sd')
model_exposed_visual_design <- brm(
formula = num_exposed_visual_design ~ oracle * search + dataset + task + participant_group + (1 + oracle * search + dataset + participant_group | participant_id),
prior = prior(normal(prior_mean, prior_sd), class = Intercept),
chains = 2,
cores = 2,
iter = 2500,
warmup = 1000,
data = exposed_visual_design_data,
stanvars=stanvars,
seed = seed,
file = "model_exposed_visual_design_group"
)
## Compiling Stan program...
## Trying to compile a simple C file
## Running /Library/Frameworks/R.framework/Resources/bin/R CMD SHLIB foo.c
## clang -mmacosx-version-min=10.13 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/Rcpp/include/" -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/" -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/unsupported" -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/BH/include" -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/src/" -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/" -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppParallel/include/" -I"/Library/Frameworks/R.framework/Versions/4.0/Resources/library/rstan/include" -DEIGEN_NO_DEBUG -DBOOST_DISABLE_ASSERTS -DBOOST_PENDING_INTEGER_LOG2_HPP -DSTAN_THREADS -DBOOST_NO_AUTO_PTR -include '/Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/stan/math/prim/mat/fun/Eigen.hpp' -D_REENTRANT -DRCPP_PARALLEL_USE_TBB=1 -I/usr/local/include -fPIC -Wall -g -O2 -c foo.c -o foo.o
## In file included from <built-in>:1:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/stan/math/prim/mat/fun/Eigen.hpp:13:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/Dense:1:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/Core:88:
## /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/src/Core/util/Macros.h:613:1: error: unknown type name 'namespace'
## namespace Eigen {
## ^
## /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/src/Core/util/Macros.h:613:16: error: expected ';' after top level declarator
## namespace Eigen {
## ^
## ;
## In file included from <built-in>:1:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/StanHeaders/include/stan/math/prim/mat/fun/Eigen.hpp:13:
## In file included from /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/Dense:1:
## /Library/Frameworks/R.framework/Versions/4.0/Resources/library/RcppEigen/include/Eigen/Core:96:10: fatal error: 'complex' file not found
## #include <complex>
## ^~~~~~~~~
## 3 errors generated.
## make: *** [foo.o] Error 1
## Start sampling
Plot
plot(model_exposed_visual_design)
Summary
summary(model_exposed_visual_design)
## Family: gaussian
## Links: mu = identity; sigma = identity
## Formula: num_exposed_visual_design ~ oracle * search + dataset + task + participant_group + (1 + oracle * search + dataset + participant_group | participant_id)
## Data: exposed_visual_design_data (Number of observations: 132)
## Samples: 2 chains, each with iter = 2500; warmup = 1000; thin = 1;
## total post-warmup samples = 3000
##
## Group-Level Effects:
## ~participant_id (Number of levels: 66)
## Estimate Est.Error
## sd(Intercept) 5.16 3.89
## sd(oracledziban) 16.78 8.98
## sd(searchdfs) 6.14 4.85
## sd(datasetmovies) 7.76 5.83
## sd(participant_groupstudent) 6.57 4.76
## sd(oracledziban:searchdfs) 23.39 13.18
## cor(Intercept,oracledziban) 0.00 0.38
## cor(Intercept,searchdfs) -0.09 0.39
## cor(oracledziban,searchdfs) 0.01 0.37
## cor(Intercept,datasetmovies) -0.04 0.38
## cor(oracledziban,datasetmovies) 0.01 0.37
## cor(searchdfs,datasetmovies) -0.08 0.39
## cor(Intercept,participant_groupstudent) -0.05 0.38
## cor(oracledziban,participant_groupstudent) 0.03 0.36
## cor(searchdfs,participant_groupstudent) -0.06 0.38
## cor(datasetmovies,participant_groupstudent) 0.02 0.38
## cor(Intercept,oracledziban:searchdfs) 0.01 0.39
## cor(oracledziban,oracledziban:searchdfs) -0.00 0.38
## cor(searchdfs,oracledziban:searchdfs) 0.00 0.38
## cor(datasetmovies,oracledziban:searchdfs) -0.05 0.38
## cor(participant_groupstudent,oracledziban:searchdfs) 0.01 0.37
## l-95% CI u-95% CI Rhat
## sd(Intercept) 0.23 14.46 1.00
## sd(oracledziban) 1.14 34.48 1.01
## sd(searchdfs) 0.21 18.13 1.00
## sd(datasetmovies) 0.35 21.62 1.00
## sd(participant_groupstudent) 0.29 17.48 1.00
## sd(oracledziban:searchdfs) 1.75 49.57 1.01
## cor(Intercept,oracledziban) -0.69 0.72 1.00
## cor(Intercept,searchdfs) -0.76 0.67 1.00
## cor(oracledziban,searchdfs) -0.67 0.71 1.00
## cor(Intercept,datasetmovies) -0.73 0.68 1.00
## cor(oracledziban,datasetmovies) -0.68 0.69 1.00
## cor(searchdfs,datasetmovies) -0.75 0.70 1.00
## cor(Intercept,participant_groupstudent) -0.73 0.67 1.00
## cor(oracledziban,participant_groupstudent) -0.67 0.71 1.00
## cor(searchdfs,participant_groupstudent) -0.74 0.65 1.00
## cor(datasetmovies,participant_groupstudent) -0.70 0.72 1.00
## cor(Intercept,oracledziban:searchdfs) -0.72 0.71 1.00
## cor(oracledziban,oracledziban:searchdfs) -0.69 0.72 1.00
## cor(searchdfs,oracledziban:searchdfs) -0.73 0.72 1.00
## cor(datasetmovies,oracledziban:searchdfs) -0.72 0.67 1.00
## cor(participant_groupstudent,oracledziban:searchdfs) -0.70 0.71 1.00
## Bulk_ESS Tail_ESS
## sd(Intercept) 1191 1319
## sd(oracledziban) 593 1144
## sd(searchdfs) 1472 1793
## sd(datasetmovies) 973 1403
## sd(participant_groupstudent) 1114 1499
## sd(oracledziban:searchdfs) 610 846
## cor(Intercept,oracledziban) 1194 1487
## cor(Intercept,searchdfs) 3449 2409
## cor(oracledziban,searchdfs) 3611 2211
## cor(Intercept,datasetmovies) 2718 2352
## cor(oracledziban,datasetmovies) 3000 2553
## cor(searchdfs,datasetmovies) 2108 1848
## cor(Intercept,participant_groupstudent) 2628 1996
## cor(oracledziban,participant_groupstudent) 2856 2097
## cor(searchdfs,participant_groupstudent) 2421 2784
## cor(datasetmovies,participant_groupstudent) 2561 2259
## cor(Intercept,oracledziban:searchdfs) 1582 1870
## cor(oracledziban,oracledziban:searchdfs) 1464 2028
## cor(searchdfs,oracledziban:searchdfs) 1781 1823
## cor(datasetmovies,oracledziban:searchdfs) 1733 2465
## cor(participant_groupstudent,oracledziban:searchdfs) 1899 2477
##
## Population-Level Effects:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS
## Intercept 66.46 7.53 51.71 81.57 1.00 2880
## oracledziban 6.15 9.01 -11.59 22.93 1.00 1920
## searchdfs -30.75 7.48 -45.01 -16.30 1.00 2641
## datasetmovies 10.55 6.29 -1.81 23.32 1.00 2556
## task4.Exploration 15.60 4.55 6.84 24.19 1.00 4993
## participant_groupstudent 2.27 6.20 -10.36 14.41 1.00 3542
## oracledziban:searchdfs 31.35 14.31 3.04 59.02 1.00 1841
## Tail_ESS
## Intercept 1989
## oracledziban 2071
## searchdfs 2359
## datasetmovies 2404
## task4.Exploration 2036
## participant_groupstudent 2538
## oracledziban:searchdfs 1447
##
## Family Specific Parameters:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sigma 25.85 1.97 22.38 30.09 1.00 2467 2695
##
## Samples were drawn using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
pairs(
model_exposed_visual_design,
pars = c(
"b_Intercept",
"b_datasetmovies",
"b_oracledziban",
"b_searchdfs",
"b_task4.Exploration",
"b_participant_groupstudent"
),
fixed = TRUE
)
draw_data_exposed_visual_design <- exposed_visual_design_data %>%
add_fitted_draws(model_exposed_visual_design, seed = seed, re_formula = NA)
draw_data_exposed_visual_design$condition <- paste(draw_data_exposed_visual_design$oracle, draw_data_exposed_visual_design$search)
plot_exposed_visual_design <- draw_data_exposed_visual_design %>% ggplot(aes(x = dataset, y = .value, fill = participant_group, alpha = 0.5)) +
stat_eye(.width = c(.95, .5)) +
theme_minimal() +
facet_grid(task ~ condition)
plot_exposed_visual_design
ggsave(
file = paste("exposed_visual_design_split_group.png", sep = ""),
plot = plot_exposed_visual_design,
path = paste0("../plots/posterior_draws/pariticpant_groups/num_interacted_variable_set")
)
## Saving 7 x 5 in image
fit_info_exposed_visual_design <-
draw_data_exposed_visual_design %>% group_by(search, oracle, task, participant_group) %>% mean_qi(.value, .width = c(.95, .5))
fit_info_exposed_visual_design
## # A tibble: 32 x 10
## # Groups: search, oracle, task [8]
## search oracle task participant_gro… .value .lower .upper .width .point
## <fct> <fct> <fct> <fct> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 bfs compa… 3. P… professional 71.7 54.1 90.1 0.95 mean
## 2 bfs compa… 3. P… student 74.0 57.3 91.6 0.95 mean
## 3 bfs compa… 4. E… professional 87.3 69.8 106. 0.95 mean
## 4 bfs compa… 4. E… student 89.6 73.4 107. 0.95 mean
## 5 bfs dziban 3. P… professional 78.6 58.6 98.3 0.95 mean
## 6 bfs dziban 3. P… student 80.2 60.3 99.5 0.95 mean
## 7 bfs dziban 4. E… professional 94.2 74.1 114. 0.95 mean
## 8 bfs dziban 4. E… student 95.8 76.4 115. 0.95 mean
## 9 dfs compa… 3. P… professional 41.7 23.4 59.0 0.95 mean
## 10 dfs compa… 3. P… student 43.3 25.9 60.6 0.95 mean
## # … with 22 more rows, and 1 more variable: .interval <chr>
write.csv(
fit_info_exposed_visual_design, "../plot_data/posterior_draws/num_interacted_variable_set/exposed_visual_design.csv",
row.names = FALSE
)
predictive_data_exposed_visual_design <- exposed_visual_design_data %>%
add_predicted_draws(model_exposed_visual_design, seed = seed, re_formula = NA)
Difference in groups
diff_in_group_prediction <- predictive_data_exposed_visual_design %>%
group_by(search, task, dataset, participant_group, .draw) %>%
summarize(value = weighted.mean(.prediction)) %>%
compare_levels(value, by = participant_group) %>%
rename(diff = value)
## `summarise()` regrouping output by 'search', 'task', 'dataset', 'participant_group' (override with `.groups` argument)
diff_in_group_prediction_plot <- diff_in_group_prediction %>%
ggplot(aes(x = diff, y = task)) +
xlab(
paste0(
"Difference in exposed_visual_design (",
diff_in_group_prediction[1, 'participant_group'],
")"
)
) +
ylab("Task") +
stat_halfeye(.width = c(.95, .5)) +
geom_vline(xintercept = 0, linetype = "longdash") +
theme_minimal() + scale_y_discrete(limits = rev(levels(diff_in_group_prediction$task)))
diff_in_group_prediction_plot
ggsave(
file = "group_differences.png",
plot = diff_in_group_prediction_plot,
path = paste0("../plots/posterior_draws/pariticpant_groups/num_interacted_variable_set")
)
## Saving 7 x 5 in image
diff_in_group_prediction_plot_split_by_dataset <- diff_in_group_prediction_plot + aes(fill = dataset, alpha = 0.5)
diff_in_group_prediction_plot_split_by_dataset
ggsave(
file = "group_differences_split_by_dataset.png",
plot = diff_in_group_prediction_plot_split_by_dataset,
path = paste0("../plots/posterior_draws/pariticpant_groups/num_interacted_variable_set")
)
## Saving 7 x 5 in image